<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>


    /**
     * 高阶函数 是对其他函数进行操作的函数, 它接收函数作为参数 或 将函数作为返回值输出
     * #
     * 函数也是一种数据类型, 同样可以作为参数, 传递给另外一个参数使用. 最典型的就是作为回调函数
     */

    // 此时fn就是一个高阶函数
    function fn(a, b, callback) {
        console.log(a + b);
        // 这行代码等同下面的 if 判断
        // callback && callback();
        if (callback) {
            callback();
        }
    }

    fn(1, 2, () => {
        console.log('我是最后调用的!')
    })
    fn(4, 3)
</script>
</body>
</html>
